package com.foreknow.demo11;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map接口（集合）
 * 1.Map<k,v>   k表示：键（key）  v：值（value）  注意：键是不能重复的，一个
 * k对应一个v
 * 2.如何向Map容器中添加元素？ put(K key,V value)  将指定的值域此映射中的指定
 * 键关联（可选操作）
 * 3.如何从Map中获取元素？   get(Object key) 返回指定键所映射的值
 * 4.实现类    HashSet（无序的）    TreeSet（具有排序功能）
 *
 * 特点：可以根据key快速定位到我们所需要的对象
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建Map容器
        Map<Integer,String> maps = new HashMap<>();
        //向map中添加元素
        maps.put(1,"fender");
        maps.put(2,"gibson");
        maps.put(3,"yamaha");
        maps.put(4,"suhr");
        //从Map中获取某一个元素
        String name = maps.get(2);
        System.out.println(name);
        //如何对Map进行遍历（Map本身不会继承Collection接口，所以不会提供迭代器
        //Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图
        Set<Map.Entry<Integer,String>> it = maps.entrySet();
        Iterator<Map.Entry<Integer,String>> iterator = it.iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer,String> entry = iterator.next();
            Integer k = entry.getKey();
            String v = entry.getValue();
            System.out.println(k+" "+v);
        }
    }
}
